/** @file Box.h
    @class Box
    @brief Class representing a box

    The bos is a simple GameObject that looks like a box.
*/
#ifndef __Box_h_
#define __Box_h_

#include "stdafx.h"
#include "GameObject.h"
class Box : public GameObject{
public:
	/**
	*	@brief Constructor
	* 
	*	@param position Defines the position of the box in worldspace. The center of the box will be placed on this point.
	*	@param dimensions	A vector containing the wanted dimensions of the box.		
	*	@param movable If the box should be movable or stationary.
	*/
	Box(Ogre::Vector3 position, Ogre::Vector3 dimensions, bool movable);
	
	/**
	*	@brief Destructor
	*/
	~Box();
	
	/**
	*	@brief Must be called prior to placing the object in a scene. Creates the box and attaches it to the scene node.
	* 
	*	@param sceneMgr The Ogre::SceneManager that manages the scene where the box should be placed.
	*	@param id A unique id, not shared with any other movable object in the scene.
	*/
	virtual void createMovableObject(Ogre::SceneManager* sceneMgr, unsigned int id);

	/**
	*	@brief Logic updates that are to be handeled every game loop. There is no such logic in the box.
	*/
	virtual void updateLogic();

private:
	/**
	*	@brief The position of the box.
	*/
	Ogre::Vector3 m_position;

	/**
	*	@brief The dimensions of the box.
	*/
	Ogre::Vector3 m_dimensions;
};

#endif


